Databases store data within accessible data structures. Relational databases store data in tables, with each table having one or more keys relating the table to other tables in the database. Requesting data from a relational database involves querying a relational database management system (RDBMS) using a relational database query language, such as Structured Query Language (SQL). Databases, individual data structures, or data tables are sometimes generated with access controls defining characteristics of users or instances granted authorization to access the data.
In recent years, software development, and specifically business-related software application development, has moved towards a cloud-based environment where developers interact with an application server to create and manage software objects related to the applications being developed. Developers use differing programming languages and components to provision and provide access controls for applications accessing data in the cloud-based environment. A programming language for developing applications for accessing and controlling access to data is the Advanced Business Application Programming (ABAP) language, developed by SAP SE, of Walldorf, Germany.
Access control for data within databases or cloud-based environments is often a part of data processing. Access controls define the data which may be seen or modified based on permissions or authorizations assigned to individual users, groups of users, resources, and systems in communication with the source of data.
Validation of access controls is often performed manually. To validate an access control scheme, a developer often creates a mock user, defining a profile, access controls and permissions, and sets of data or data structures accessible by the mock user. Creation of mock users is often a labor-intensive and error-prone process. The mock user profiles are often resource-intensive creations unsuitable to scaling of the validation testing process. Validation of access controls is sometimes performed using programmatic tests of software. Programmatic validation often employs access control permissions coupled to the user performing the validation process. Such programmatic validation tests often proactively remove dependencies of access controls and users performing the validation testing in order to achieve stable results.